package com.ruoyi.bole.wechatSubscribe.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 微信小程序订阅消息推送用户（关联用户）对象 bole_wechat_subscribe_user
 * 
 * @author wujiale
 * @date 2025-07-26
 */
public class BoleWechatSubscribeUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 关联若依系统用户ID */
    @Excel(name = "关联若依系统用户ID")
    private Long userId;

    /** 微信用户openid */
    @Excel(name = "微信用户openid")
    private String openid;

    /** 订阅消息模板ID */
    @Excel(name = "订阅消息模板ID")
    private String templateId;

    /** 订阅状态：0-未订阅，1-已订阅，2-已取消 */
    @Excel(name = "订阅状态：0-未订阅，1-已订阅，2-已取消")
    private Long subscribeStatus;

    /** 订阅时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订阅时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date subscribeTime;

    /** 取消订阅时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "取消订阅时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancelTime;

    /** 最后一次推送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次推送时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastPushTime;

    /** 累计推送次数 */
    @Excel(name = "累计推送次数")
    private Long pushCount;

    /** 消息默认跳转页面 */
    @Excel(name = "消息默认跳转页面")
    private String pagePath;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setOpenid(String openid) 
    {
        this.openid = openid;
    }

    public String getOpenid() 
    {
        return openid;
    }
    public void setTemplateId(String templateId) 
    {
        this.templateId = templateId;
    }

    public String getTemplateId() 
    {
        return templateId;
    }
    public void setSubscribeStatus(Long subscribeStatus) 
    {
        this.subscribeStatus = subscribeStatus;
    }

    public Long getSubscribeStatus() 
    {
        return subscribeStatus;
    }
    public void setSubscribeTime(Date subscribeTime) 
    {
        this.subscribeTime = subscribeTime;
    }

    public Date getSubscribeTime() 
    {
        return subscribeTime;
    }
    public void setCancelTime(Date cancelTime) 
    {
        this.cancelTime = cancelTime;
    }

    public Date getCancelTime() 
    {
        return cancelTime;
    }
    public void setLastPushTime(Date lastPushTime) 
    {
        this.lastPushTime = lastPushTime;
    }

    public Date getLastPushTime() 
    {
        return lastPushTime;
    }
    public void setPushCount(Long pushCount) 
    {
        this.pushCount = pushCount;
    }

    public Long getPushCount() 
    {
        return pushCount;
    }
    public void setPagePath(String pagePath) 
    {
        this.pagePath = pagePath;
    }

    public String getPagePath() 
    {
        return pagePath;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("openid", getOpenid())
            .append("templateId", getTemplateId())
            .append("subscribeStatus", getSubscribeStatus())
            .append("subscribeTime", getSubscribeTime())
            .append("cancelTime", getCancelTime())
            .append("lastPushTime", getLastPushTime())
            .append("pushCount", getPushCount())
            .append("pagePath", getPagePath())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
